<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 假设你是一名食品制造商，需要创建一个Food类来管理你的产品。这个类需要包括以下属性和方法：
    属性： + name：食品名称 + price：食品价格 +
    ingredients：食品原料数组，存储每个原料的名称和重量 方法： +
    addIngredient(name,
    weight)：向食品原料数组中添加一种原料，参数为原料名称和重量 +
    removeIngredient(name)：从食品原料数组中删除一种原料，参数为原料名称 +
    calculateTotalWeight()：计算食品总重量，即所有原料的重量之和 +
    toString()：返回食品的字符串表示，格式为“名称：xxx，价格：xxx，原料：xxx”
    请使用构造函数和原型来定义这个Food类，并创建两个实例对象来测试你的代码。其中一个实例对象需要使用addIngredient和removeIngredient方法来修改原料数组，另一个实例对象直接传入原料数组作为参数。 -->
    <script>
      function Food(name, price, ingredients) {
        this.name = name
        this.price=price
        this.ingredients = ingredients
      }
      // 增
      Food.prototype.addIngredient = function (name, weight) {
        return this.ingredients.push({
          name,
          weight,
        })
      }
      // 删
      Food.prototype.removeIngredient = function (name) {
        const index = this.ingredients.findIndex((item) => {
          return item.name === name
        })
        return this.ingredients.splice(index, 1)
      }
      Food.prototype.calculateTotalWeight = function () {
        return this.ingredients.reduce(function (sum, item) {
          return sum + item.weight
        }, 0)
      }
      Food.prototype.toString = function () {
       
        const newData=this.ingredients.map((item) => {
            return item.name
        })
        return `名称:${this.name}价格:${this.price} 原料:${newData.join(',')} `
      
       
        
      }
      const fish = new Food('鱼罐头', 160, [
        {
          name: '鱼肉',
          weight: 50,
        },
        {
          name: '皮肉',
          weight: 50,
        },
      ])
    // 增
      fish.addIngredient('哇哈哈', 50)
      console.log(fish)
// 求和
      console.log(fish.calculateTotalWeight())
      // 删除
       fish.removeIngredient('哇哈哈')
// 字符
      console.log(fish.toString())
    </script>
  </body>
</html>
